home *** CD-ROM | disk | FTP | other *** search
- #!/bin/sh
- #
- # vi:set ts=40 sw=2:
- #
- # Install Script for UNIX Acrobat Exchange and Reader v. 2.0
- #
- # Copyright (c)1995, Adobe Systems Incorporated
- # All Rights Reserved
- #
- # High Level Design:
- #
- # Initialization
- # Output License to controlling terminal
- # Does the user accept the terms and conditions of the license?
- # No: exit
- # Yes: continue
- # Enumerate all of the configurations
- # If just one configuration
- # Do an easy installation
- # else
- # Do a custom installation
- #
-
- ##########################################################################
-
- echoawk ()
- {
- echo $* | awk '{ printf "%s", $0 }'
- }
-
- echon ()
- {
- echo -n "$*"
- }
-
- echoc ()
- {
- echo "${*}\c"
- }
-
- ##########################################################################
-
- yesno()
- {
- msg="$1"
- def="$2"
- while true ; do
- echo " "
- $echonl "$msg"
- read answer
- if [ "$answer" ] ; then
- case "$answer" in
- y|Y|yes|YES)
- return 0
- ;;
- n|N|no|NO)
- return 1
- ;;
- *)
- echo " "
- echo "ERROR: Invalid response, expected \"yes\" or \"no\"."
- continue
- ;;
- esac
- else
- return $def
- fi
- done
- }
-
- OutputLicense ()
- {
- if [ -z "$1" ] ; then
- return
- fi
-
- if [ ! -f "$1" ] ; then
- echo " "
- echo "ERROR: Cannot find license file ... aborting"
- echo " "
- exit 1
- fi
-
- if [ -z "$PAGER" ] || [ "`type $PAGER`" = "$PAGER not found" ] ; then
- if [ "`type more`" != "more not found" ] ; then
- command=more
- elif [ "`type pg`" != "pg not found" ] ; then
- command=pg
- else
- command=cat
- fi
- else
- command="$PAGER"
- fi
-
- echo " "
- "$command" "$1"
-
- answer=
- while [ -z "$answer" ] ; do
- echo " "
- echo " "
- echo "To accept the terms and conditions of this agreement enter \"accept\"."
- echo "To decline the terms and conditions of this agreement enter \"decline\"."
- echo " "
- $echonl "Do you accept the terms and conditions of this license agreement? "
- read answer
- ucanswer=`echo "${answer}" | tr '[a-z]' '[A-Z]'`
- case "$ucanswer" in
- ACCEPT)
- ;;
- DECLINE)
- echo " "
- echo "License not accepted ... aborting installation"
- echo " "
- exit 1
- ;;
- *)
- echo " "
- echo "ERROR: Invalid response, expected \"accept\" or \"decline\" ... try again"
- answer=
- ;;
- esac
- done
- }
-
- PrintRequiredFree()
- {
- total=0
- for i in $* ; do
- if [ "$i" -a -f "$i" ] ; then
- size=`ls -lLon "$i" | ( read perm links owner size date ; echo $size )`
- if [ "$size" ] ; then
- total=`expr $total + $size`
- fi
- fi
- done
-
- megs=`expr $total / 1048576 + 1`
-
- echo " "
- echo "This installation requires ${megs}MB of free disk space."
- }
-
- FilterPathName ()
- {
- newpathname="$1"
- case "$newpathname" in
- ~*)
- if [ -f /bin/csh -a -x /bin/csh ] ; then
- newpathname=`/bin/csh -c "echo $newpathname"`
- fi
- ;;
- ../*|./*)
- newpathname=`pwd`/"${newpathname}"
- ;;
- *)
- ;;
- esac
- echo "${newpathname}"
- }
-
- ExtractFiles ()
- {
- ( cd "$1" ; tar xf "$2" )
- }
-
- InstallFiles ()
- {
- msg="$1"
- install="$2"
- shift
- shift
-
- echo " "
-
- for i in "$@" ; do
- if [ "$i" ] ; then
- if [ "$msg" ] ; then
- $echonl "$msg"
- msg=""
- fi
- ExtractFiles "$install" "$i"
- fi
- done
-
- if [ -z "$msg" ] ; then
- echo "Done"
- fi
- }
-
- InstallBin()
- {
- install="$1"
-
- for i in "$install"/bin/acro*.sh ; do
- if [ -f "$i" ] ; then
- filename="$install"/bin/`basename "$i" .sh`
-
- ed -s "$i" <<__EOF__
- 1,\$s@REPLACE_ME@$install@
- w
- q
- __EOF__
- if [ $? != 0 ] ; then
- echo "ERROR installing $filename"
- continue
- fi
-
- chmod +x "$i"
- if [ $? != 0 ] ; then
- echo "ERROR installing $filename"
- continue
- fi
-
- mv "$i" "$filename"
- if [ $? != 0 ] ; then
- echo "ERROR installing $filename"
- continue
- fi
- fi
- done
- }
-
- GetInstallDirectory ()
- {
- if [ -z "$1" ] ; then
- product=Acrobat
- else
- product="$1"
- fi
-
- var=$2
-
- case "$product" in
- AcroExch) productName="Acrobat Exchange" ;;
- AcroRead) productName="Acrobat Reader" ;;
- *) productName="Acrobat" ;;
- esac
-
- defdir="/usr/local/$product"
- case "$OSname" in
- SunOS)
- case "$OSrelease" in
- 4.1.3*|4.1.4*) defdir="/usr/$product" ;;
- 5.*) defdir="/opt/$product" ;;
- esac
- ;;
- HP-UX)
- case "$OSrelease" in
- *.09.*) defdir="/usr/$product" ;;
- *.10.*) defdir="/opt/$product" ;;
- *) defdir="/opt/$product" ;;
- esac
- ;;
- esac
-
- while true ; do
-
- if [ -z "$InstallDir" ] ; then
- InstallDir="$defdir"
- fi
-
- echo " "
- $echonl "Enter installation directory for $product [${InstallDir}] "
- read answer
- case "$answer" in
- "")
- ;;
- *)
- InstallDir="$answer"
- ;;
- esac
-
- InstallDir=`FilterPathName "$InstallDir"`
-
- if [ ! -d "$InstallDir" ] ; then
- echo " "
- $echonl "Directory \"$InstallDir\" does not exist create it now? [y] "
- read answer
- if [ "$answer" ] ; then
- case "$answer" in
- y|Y|yes|YES)
- ;;
- n|N|no|NO)
- echo " "
- echo "Acrobat installation aborted."
- echo " "
- exit 1
- ;;
- *)
- echo " "
- echo "ERROR: Invalid response, expected \"yes\" or \"no\"."
- continue
- ;;
- esac
- fi
-
- mkdir -p "$InstallDir"
-
- if [ ! -d "$InstallDir" ] ; then
- echo " "
- echo "ERROR: Cannot make directory \"$InstallDir\"."
- InstallDir=""
- continue;
- fi
- fi
-
- if ( echo foo > "$InstallDir"/AcroWriteTest ) 2> /dev/null ; then
- rm -f "$InstallDir"/AcroWriteTest
- break
- else
- echo " "
- echo "ERROR: Cannot write to directory \"$InstallDir\"."
- InstallDir=""
- continue
- fi
- done
-
- eval $var=\"$InstallDir\"
- }
-
- CheckSerialNumber()
- {
- p1="^[a-zA-Z]\{3\}[0-9]\{3\}[a-zA-Z0-9]\{2\}[0-9]\{6\}-[0-9]\{3\}$"
- p2="^[a-zA-Z]\{3\}[0-9]\{3\}[a-zA-Z0-9]\{2\}[0-9]\{6\}-[0-9]\{3\}-[0-9]\{3\}$"
-
- if [ `expr "$1" : "$p1"` != 0 ] \
- || [ `expr "$1" : "$p2"` != 0 ] ; then
- return 0
- fi
-
- return 1
- }
-
- GetSerialNumber()
- {
- dir="$2"
- file="$2/${1}Data"
-
- while true ; do
- echo " "
- $echonl "Enter product serial number? "
- read sn
- if CheckSerialNumber "$sn" ; then
- break
- fi
- echo " "
- echo "ERROR: Invalid serial number ... try again"
- done
-
- echo " "
- $echonl "Enter company name? "
- read co
-
- if [ ! -d "$dir" ] ; then
- mkdir "$dir"
- fi
-
- rm -f "$file"
- echo "serialNumber:$sn" > "$file"
- echo "companyName:$co" >> "$file"
- }
-
-
- InstallReader()
- {
- ReadConfig="$1"
- ReadPlatformTar="$2"
- SearchPlatformTar="$3"
- CustomPlatformTar="$4"
- dosearch=no
-
- if [ "$SearchTar" -o "$CustomTar" -o "$SearchPlatformTar" -o "$CustomPlatformTar" ] ; then
- if [ "$SerialNumber" ] ; then
- dosearch=yes
- else
- echo ""
- echo "WARNING: This Acrobat Reader installation does not include Acrobat Search."
- if yesno "Proceed with installation? [y] " 0 ; then
- :
- else
- exit 1
- fi
- fi
- fi
-
- OutputLicense "$ReadLicense"
- ReadLicense=""
-
- if [ "$dosearch" = yes ] ; then
-
- PrintRequiredFree "$ReadTar" "$SearchTar" "$CustomTar" \
- "$ReadPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"
-
- if [ -z "$ReadInstallDir" ] ; then
- GetInstallDirectory AcroRead ReadInstallDir
- fi
-
- InstallFiles "Installing platform independent files ... " \
- "$ReadInstallDir" "$ReadTar" "$SearchTar" "$CustomTar"
- InstallFiles "Installing platform dependent files ... " \
- "$ReadInstallDir" \
- "$ReadPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"
- InstallBin "$ReadInstallDir"
-
- ReadTar=""
- SearchTar=""
- CustomTar=""
-
- if [ "$SerialNumber" ] ; then
- dir="$ReadInstallDir/$ReadConfig"
-
- if [ ! -d "$dir" ] ; then
- mkdir "$dir"
- fi
-
- rm -f "$dir/AcroReadData"
- echo "serialNumber:$SerialNumber" > "$dir/AcroReadData"
- fi
-
- else
-
- PrintRequiredFree "$ReadTar" "$ReadPlatformTar"
-
- if [ -z "$ReadInstallDir" ] ; then
- GetInstallDirectory AcroRead ReadInstallDir
- fi
-
- InstallFiles "Installing platform independent files ... " \
- "$ReadInstallDir" "$ReadTar"
- InstallFiles "Installing platform dependent files ... " \
- "$ReadInstallDir" "$ReadPlatformTar"
- InstallBin "$ReadInstallDir"
-
- ReadTar=""
-
- fi
- }
-
-
- InstallExchange()
- {
- ExchConfig="$1"
- ExchPlatformTar="$2"
- SearchPlatformTar="$3"
- CustomPlatformTar="$4"
-
- OutputLicense "$ExchLicense"
- ExchLicense=""
-
- PrintRequiredFree "$ExchTar $SearchTar $CustomTar" \
- "$ExchPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"
-
- if [ -z "$ExchInstallDir" ] ; then
- GetInstallDirectory AcroExch ExchInstallDir
- fi
-
- GetSerialNumber AcroExch "$ExchInstallDir/$ExchConfig"
-
- InstallFiles "Installing platform independent files ... " \
- "$ExchInstallDir" "$ExchTar" "$SearchTar" "$CustomTar"
- InstallFiles "Installing platform dependent files ... " \
- "$ExchInstallDir" \
- "$ExchPlatformTar" "$SearchPlatformTar" "$CustomPlatformTar"
- InstallBin "$ExchInstallDir"
-
- ExchTar=""
- SearchTar=""
- CustomTar=""
- }
-
- ##############################################################
-
- #
- # Initialization:
- #
-
- umask 022
-
- ScriptName=`basename $0`
- CurrentDirectory=`pwd`
- ScriptDirectory=`dirname $0`
- case "${ScriptDirectory}" in
- /*) ;;
- .) ScriptDirectory="$CurrentDirectory" ;;
- *) ScriptDirectory="$CurrentDirectory"/"$ScriptDirectory" ;;
- esac
-
- if [ "`type uname`" != "uname not found" ] ; then
- OSname=`uname -s`
- OSrelease=`uname -r`
- else
- OSname=unknown
- OSrelease=unknown
- fi
-
- if [ `echo "x\c"` = "x" ] ; then
- echonl=echoc
- else
- echonl=echon
- fi
-
- #
- # Get the filenames:
- #
-
- for i in ${ScriptDirectory}/* ; do
- if [ -f "$i" ] ; then
- case $i in
- */sernum.txt|*/SERNUM.TXT)
- a="`cat "$i" | tr '\015' '\012' | ( read a b ; echo $a )`"
- if CheckSerialNumber "$a" ; then
- SerialNumber="$a"
- fi
- ;;
- */licread.txt|*/LICREAD.TXT)
- ReadLicense="$i"
- ;;
- */licexch.txt|*/LICEXCH.TXT)
- ExchLicense="$i"
- ;;
- */read.tar|*/READ.TAR)
- ReadTar="$i"
- ;;
- */exch.tar|*/EXCH.TAR)
- ExchTar="$i"
- ;;
- */search.tar|*/SEARCH.TAR)
- SearchTar="$i"
- ;;
- */custom.tar|*/CUSTOM.TAR)
- CustomTar="$i"
- ;;
- */ssole.tar|*/SSOLE.TAR)
- ExchSparcSolarisTar="$i"
- ;;
- */ssolr.tar|*/SSOLR.TAR)
- ReadSparcSolarisTar="$i"
- ;;
- */ssols.tar|*/SSOLS.TAR)
- SearchSparcSolarisTar="$i"
- ;;
- */ssolc.tar|*/SSOLC.TAR)
- CustomSparcSolarisTar="$i"
- ;;
- */ssune.tar|*/SSUNE.TAR)
- ExchSparcSunTar="$i"
- ;;
- */ssunr.tar|*/SSUNR.TAR)
- ReadSparcSunTar="$i"
- ;;
- */ssuns.tar|*/SSUNS.TAR)
- SearchSparcSunTar="$i"
- ;;
- */ssunc.tar|*/SSUNC.TAR)
- CustomSparcSunTar="$i"
- ;;
- */hpuxe.tar|*/HPUXE.TAR)
- ExchHppaHpuxTar="$i"
- ;;
- */hpuxr.tar|*/HPUXR.TAR)
- ReadHppaHpuxTar="$i"
- ;;
- */hpuxs.tar|*/HPUXS.TAR)
- SearchHppaHpuxTar="$i"
- ;;
- */hpuxc.tar|*/HPUXC.TAR)
- CustomHppaHpuxTar="$i"
- ;;
- esac
- fi
- done
-
-
- #
- # Validate the configurations:
- #
-
- NumConfigs=0
-
- if [ "$ExchTar" -a "$ExchLicense" ] ; then
- if [ "$ExchSparcSolarisTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ExchSparcSolarisNum=$NumConfigs
- fi
- if [ "$ExchSparcSunTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ExchSparcSunNum=$NumConfigs
- fi
- if [ "$ExchHppaHpuxTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ExchHppaHpuxNum=$NumConfigs
- fi
- fi
-
- if [ "$ReadTar" -a "$ReadLicense" ] ; then
- if [ "$ReadSparcSolarisTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ReadSparcSolarisNum=$NumConfigs
- fi
- if [ "$ReadSparcSunTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ReadSparcSunNum=$NumConfigs
- fi
- if [ "$ReadHppaHpuxTar" ] ; then
- NumConfigs=`expr $NumConfigs + 1`
- ReadHppaHpuxNum=$NumConfigs
- fi
- fi
-
- if [ "$NumConfigs" = "0" ] ; then
- echo " "
- echo "ERROR: No configurations found ... aborting"
- echo " "
- exit 1
- elif [ "$NumConfigs" = "1" ] ; then
- SingleConfig=true
- fi
-
- NumConfigs=`expr $NumConfigs + 1`
- ExitNum=$NumConfigs
-
-
- #
- # Check if there is a configuration supported by this OS.
- #
-
- case "$OSname" in
- SunOS)
- case "$OSrelease" in
- 4.1.3*|4.1.4*)
- ExchDefaultNum="$ExchSparcSunNum"
- ReadDefaultNum="$ReadSparcSunNum"
- DefaultName="SPARC/Solaris 1.x"
- ;;
- 5.1|5.1.*|5.2|5.2.*)
- ;;
- 5.*)
- ExchDefaultNum="$ExchSparcSolarisNum"
- ReadDefaultNum="$ReadSparcSolarisNum"
- DefaultName="SPARC/Solaris 2.x"
- ;;
- esac
- ;;
- HP-UX)
- case "$OSrelease" in
- *.09.*|*.10.*)
- ExchDefaultNum="$ExchHppaHpuxNum"
- ReadDefaultNum="$ReadHppaHpuxNum"
- DefaultName="HP-UX"
- ;;
- esac
- ;;
- esac
-
- if [ -z "$ExchDefaultNum" -a -z "$ReadDefaultNum" ] ; then
- echo ""
- echo "WARNING: The current OS ($OSname/$OSrelease) is not supported."
- if yesno "Continue installation? [n] " 1 ; then
- :
- else
- exit 1
- fi
- fi
-
-
- #
- # If multiple confurations, get the default configuration
- #
-
- if [ -z "$SingleConfig" ] ; then
- if [ "$ExchDefaultNum" ] ; then
- if yesno "Install default configuration, Acrobat Exchange for $DefaultName? [y] " 0 ; then
- DefaultConfig="$ExchDefaultNum"
- fi
- elif [ "$ReadDefaultNum" ] ; then
- if yesno "Install default configuration, Acrobat Reader for $DefaultName? [y] " 0 ; then
- DefaultConfig="$ReadDefaultNum"
- fi
- fi
- fi
-
-
- #
- # If a single configuration available the loop will be executed once
- # otherwise it will ask for each configuration to install
- #
-
- while [ "$NumConfigs" -gt 1 ] ; do
-
- #
- # If multiple configuration ask for which to install
- #
-
- if [ "$SingleConfig" ] ; then
-
- ConfigNum=1
-
- elif [ "$DefaultConfig" ] ; then
-
- ConfigNum="$DefaultConfig"
-
- else
-
- #
- # Display multiple configurations
- #
-
- echo " "
- echo "The following configurations are available for installation:"
- echo " "
-
- if [ "$ExchSparcSolarisNum" ] ; then
- echo " ${ExchSparcSolarisNum}. Acrobat Exchange for SPARC/Solaris 2.x"
- fi
- if [ "$ExchSparcSunNum" ] ; then
- echo " ${ExchSparcSunNum}. Acrobat Exchange for SPARC/Solaris 1.x"
- fi
- if [ "$ExchHppaHpuxNum" ] ; then
- echo " ${ExchHppaHpuxNum}. Acrobat Exchange for HP-UX"
- fi
-
- if [ "$ReadSparcSolarisNum" ] ; then
- echo " ${ReadSparcSolarisNum}. Acrobat Reader for SPARC/Solaris 2.x"
- fi
- if [ "$ReadSparcSunNum" ] ; then
- echo " ${ReadSparcSunNum}. Acrobat Reader for SPARC/Solaris 1.x"
- fi
- if [ "$ReadHppaHpuxNum" ] ; then
- echo " ${ReadHppaHpuxNum}. Acrobat Reader for HP-UX"
- fi
- if [ "$ExitNum" ] ; then
- echo " ${ExitNum}. Exit Acrobat installation"
- fi
-
- echo " "
- $echonl "Enter the configuration number to install: "
- read ConfigNum
-
- fi
-
-
- #
- # Install the configuration
- #
-
- if [ -z "$ConfigNum" ] ; then
-
- echo " "
- echo "ERROR: Invalid response ... try again"
- continue
-
- elif [ "$ConfigNum" = "$ExchSparcSolarisNum" ] ; then
-
- InstallExchange sparcsolaris "$ExchSparcSolarisTar" \
- "$SearchSparcSolarisTar" "$CustomSparcSolarisTar"
- ExchSparcSolarisNum=""
-
- elif [ "$ConfigNum" = "$ReadSparcSolarisNum" ] ; then
-
- InstallReader sparcsolaris "$ReadSparcSolarisTar" \
- "$SearchSparcSolarisTar" "$CustomSparcSolarisTar"
- ReadSparcSolarisNum=""
-
- elif [ "$ConfigNum" = "$ExchSparcSunNum" ] ; then
-
- InstallExchange sparcsun "$ExchSparcSunTar" \
- "$SearchSparcSunTar" "$CustomSparcSunTar"
- ExchSparcSunNum=""
-
- elif [ "$ConfigNum" = "$ReadSparcSunNum" ] ; then
-
- InstallReader sparcsun "$ReadSparcSunTar" \
- "$SearchSparcSunTar" "$CustomSparcSunTar"
- ReadSparcSunNum=""
-
- elif [ "$ConfigNum" = "$ExchHppaHpuxNum" ] ; then
-
- InstallExchange hppahpux "$ExchHppaHpuxTar" \
- "$SearchHppaHpuxTar" "$CustomHppaHpuxTar"
- ExchHppaHpuxNum=""
-
- elif [ "$ConfigNum" = "$ReadHppaHpuxNum" ] ; then
-
- InstallReader hppahpux "$ReadHppaHpuxTar" \
- "$SearchHppaHpuxTar" "$CustomHppaHpuxTar"
- ReadHppaHpuxNum=""
-
- elif [ "$ConfigNum" = "$ExitNum" ] ; then
-
- break
-
- else
-
- echo " "
- echo "ERROR: Invalid response ... try again"
- continue
-
- fi
-
- if [ "$DefaultConfig" ] ; then
- break;
- fi
-
- if [ -z "$MultipleInstall" ] ; then
- break;
- fi
-
- NumConfigs=`expr $NumConfigs - 1`
-
- done
-
-
- echo " "
- exit 0
-
-